// 导入 moment 库，用于日期和时间的处理
import moment from 'moment';

// 创建一个对象用于存储各种模拟数据
const mockData = {}

// 用户信息数组
mockData.users = [
    {id: 1, name: '张三'},
    {id: 2, name: '李四'},
    {id: 3, name: '王五'},
    {id: 4, name: '刘晓燕'},
]

// 设备信息数组
mockData.devices = [
    {id: 0, name: '治疗设备1'},
    {id: 1, name: '治疗设备2'},
    {id: 2, name: '治疗设备3'},
]

// 日期格式化字符串
let formatStr = 'YYYY-MM-DD HH:mm:ss'

// 日程安排信息数组
mockData.schedules = [
    {id: 1, userId: 1, date: moment().format(formatStr), state: 0},
    {id: 2, userId: 2, date: moment().add(1, 'months').format(formatStr), state: 0},
    {id: 3, userId: 3, date: moment().add(1, 'days').format(formatStr), state: 1},
    {id: 3, userId: 3, date: moment().add(3, 'days').format(formatStr), state: 1},
    {id: 4, userId: 2, date: moment().subtract(1, 'months').format(formatStr), state: 2},
    {id: 5, userId: 3, date: moment().subtract(1, 'days').format(formatStr), state: 1},
    {id: 6, userId: 3, date: moment().add(1, 'hour').format(formatStr), state: 0},
    {id: 7, userId: 3, date: moment().add(0, 'hour').format(formatStr), state: 1},
    {id: 8, userId: 3, date: moment().add(3, 'hour').format(formatStr), state: 0},
    {id: 9, userId: 2, date: moment().add(4, 'hour').format(formatStr), state: 0},
    {id: 10, userId: 1, date: moment().add(5, 'hour').format(formatStr), state: 0}
]

// 保存日程安排的函数
// 接收 userId 和 date 作为参数
// 将新的日程安排对象添加到 schedules 数组中
// 新对象的 id 为当前时间戳，state 为 0
mockData.saveSchedule = (userId, date) => {
    mockData.schedules.push({
        id: new Date().getTime(),
        userId,
        date,
        state: 0
    })
}

// 根据 id 获取日程安排的函数
// 接收 id 作为参数
// 在 schedules 数组中查找 id 匹配的元素并返回
mockData.getScheduleById = (id) => {
    return mockData.schedules.find(item => item.id === id);
}

// 删除日程安排的函数
// 接收 id 作为参数
// 在 schedules 数组中查找 id 匹配元素的索引，使用 splice 方法将该元素移除
mockData.removeSchedule = (id) => {
    mockData.schedules.splice(mockData.schedules.findIndex(item => item.id === id), 1);
}

// 根据用户 id 获取用户名称的函数
// 接收 id 作为参数
// 在 users 数组中查找 id 匹配的元素，若找到则返回 name 属性，未找到返回空字符串
mockData.getUserName = (id) => {
    let item = mockData.users.find(item => item.id === id);
    return item? item.name : ''
}

// 导出 mockData 对象，方便在其他模块中使用
export default mockData